<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var arr1 = [1, 2, 3]
        var arr2 = [1]
        var arr3 = [2]
        var arr4 = [5, 4, 2, 1, 8]
        // 1.使用push方法可以向数组末尾添加元素
        arr1.push(4);
        console.log(arr1);
        // 2.使用pop方法可以删除数组的最后一个元素,并且将删除的元素作为返回值返回
        console.log(arr1.pop());
        console.log(arr1);
        // 3.使用unshift方法可以向数组开头添加元素
        arr1.unshift(0);
        console.log(arr1);
        // 4.使用shift方法可以删除数组的第一个元素，并且将删除的元素作为返回值返回
        console.log(arr1.shift());
        console.log(arr1);
        // 5.使用forEach方法可以遍历数组
        arr1.forEach(function (value, index, array) {
            console.log('数组元素为：' + value);
            console.log('数组索引为:' + index);
            console.log('来自数组：' + array);
        })
        // 6.使用slice(起始位置，终止位置)方法可以读取数组元素，并将读取后的元素装到一个新数组中返回。
        console.log(arr1.slice(0, 2));
        // 7.使用concat方法合并两个数组并将合并后的新数组返回。
        arr = arr2.concat(arr3);
        console.log(arr);
        // 8.使用join(“分隔符”)方法可以将数组转换为字符串。其中分隔符的指定不是刚需，如没有指定分隔符则默认使用逗号。
        var str = arr1.join("-");
        console.log(str);
        // 9.使用reverse方法可以用于反转数组
        console.log(arr1.reverse());
        // 10.使用sort方法可以用于数组排序
        console.log(arr4.sort());
        // 如果想要指定排序规则可以使用回调函数，具体实现为arr.sort(function (a,b)){return a-b}。如果升序则返回a-b，如果降序则返回b-a。
        console.log(arr4.sort(function (a, b) {
            return b - a;
        }));
        // 11.使用filter可以筛选数组，并且返回一个新数组
        var filterStr = arr1.filter(function (value, index) {
            // 筛选数组中大于等于2的元素并作为一个数组返回
            return value >= 2
        })
        console.log(filterStr);
        // 12.使用some可以查找数组中是否有满足条件的元素，并返回布尔值。当找到符合条件的第一个元素后便不再查找
        console.log(arr1.some(function (value, index) {
            // 查找数组中是否有大于等于2的元素存在
            return value >= 2
        }));
    </script>
</body>

</html>